Skip to content

feat: Adding "skill" server adapter in spec and engine#119

Open
jlouvel wants to merge 9 commits intomainfrom
agent-skills-part-2
Open

feat: Adding "skill" server adapter in spec and engine#119
jlouvel wants to merge 9 commits intomainfrom
agent-skills-part-2

Conversation

@jlouvel
Copy link
Contributor

@jlouvel jlouvel commented Mar 10, 2026

Introduces the skill server adapter, which exposes one or more AI agent skill definitions over HTTP, making them discoverable and downloadable by agents and tooling.

Spec layer:

  • ExposedSkillSpec — skill definition (name, description, tools, location, metadata, compatibility flags)
  • SkillToolSpec / SkillToolFromSpec — tool declarations (derived from capability actions or standalone instructions)
  • SkillServerSpec — groups skills under a shared base path and port
  • ServerSpec wired to accept skill adapter type

Engine layer:

  • SkillServerAdapter — wires Restlet Router + Server with five routes and starts the HTTP listener
  • SkillServerResource (abstract) — shared base with path-traversal validation, MetadataService-based MIME detection, and a shared ObjectMapper
  • SkillCatalogResourceGET /skills
  • SkillDetailResourceGET /skills/{name}
  • SkillContentsResourceGET /skills/{name}/contents
  • SkillFileResourceGET /skills/{name}/files/{file} (streaming via FileRepresentation)
  • SkillDownloadResourceGET /skills/{name}/download (ZIP via OutputRepresentation)

All JSON responses use JacksonRepresentation<ObjectNode> (no in-memory string serialization).

Schema: ExposesSkill, ExposedSkill, SkillTool added to
capability-schema.json.

Docs: §§3.5.9–3.5.12 added to naftiko-specification-v0.5.md;
skill-adapter.yml example added.

Tests: 27 new tests across CapabilitySkillIntegrationTest,
SkillServerSpecRoundTripTest, and SkillToolSpecDeserializationTest.

@jlouvel jlouvel requested a review from eskenazit March 10, 2026 02:26
@jlouvel jlouvel self-assigned this Mar 10, 2026
@eskenazit
Copy link
Contributor

This is confusing ^^' We have a Notion specification page, a PR with the wiki specification with request fir change and a PR with an implentation fo the spec. I do not know against which specification I am supposed to use to validate this PR... Let us discuss process before moving on =)

@jlouvel
Copy link
Contributor Author

jlouvel commented Mar 10, 2026

The wiki PR was created before the work on this implementation started, hence the disconnect. I will refresh it.

For the scope of this PR, the included spec (agent-skills-support-proposal.md) is exactly the same as the spec in Notion that you reviewed. So this implementation is consistent with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants